#include <iostream>
using namespace std;

// class A{
// public :
//     static int GetM()//静态成员函数，没有this指针，因此只允许访问静态成员变量
//     {
//         return m;
//     }
// static int n;//这里是声明，且静态变量不能给缺省值，因为不在单个变量里面，而是属于整个类，因此也不在初始化列表定义
// static int m;
// };
// int A:: m  =0;//这里要定义
// int A:: n = 0;

// int main()
// {
//     int sz = sizeof(A);//A的大小是1，因为静态变量定义在静态区，不属于该变量，属于整个类
//     A c;
//     c.n = 10;//这里在使用该类改变时如果不定义的话，就会出现问题，无法编译成功
//     //但编译器（g++）却并不会直接报错

//     //类里面的变量属于整个类的证明
//     A* ptr = nullptr;
//     ptr->m = 10;
//     //这里正常运行
//     //原因就是m，n不存在单个变量，是属于整个类
    
//     //当然变量一般放在私有成员，以防止被随便修改

//     return 0;
// }


class A{
public : friend void fuc();
private:
int _a = 0;
}

void fuc()
{
    A a;
    cout<< a._a<<endl;
}
